ee7cb1489f2775ae0b38b7ac8798764e668e5175,src/frontend/org/voltdb/iv2/Site.java,Site,run,#,494
Before Change
// are responsible for logging any rejoin work they might have.
SiteTasker task = m_scheduler.poll();
if (task != null) {
task.runForRejoin(getSiteProcedureConnection(), m_rejoinTaskLog);
}
replayFromTaskLog();
}
After Change
// are responsible for logging any rejoin work they might have.
SiteTasker task = null;
boolean didWork = false;
while ((task = m_scheduler.poll()) != null) {
didWork = true;
//If the task log is empty, free to execute the task
//If the mrm says we can do a restricted task, go do it
//Otherwise spin doing unrestricted tasks until we can bail out
//and do the restricted task that was polled
if (!m_rejoinTaskLog.isEmpty() && !mrm.canDoRestricted()) {
while (!mrm.canDoRestricted()) {
replayFromTaskLog(mrm);
}
}
mrm.didRestricted();
task.runForRejoin(getSiteProcedureConnection(), m_rejoinTaskLog);
}
//If there are no tasks, do task log work
didWork |= replayFromTaskLog(mrm);